package com.zxw.flow.client.toc;

import com.zxw.common.core.base.res.BaseRes;
import com.zxw.flow.api.toc.FilePathApi;
import com.zxw.flow.domain.dto.toc.FlowPathTreeDTO;
import com.zxw.flow.domain.entity.toc.FilePath;
import com.zxw.flow.domain.vo.toc.FilePathVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author Xuewei.Zhang
 * @date 2022/9/15
 */
/*
    参考：registerFeignClient

    @AliasFor("name")
    String value() default ""; 名称

    @AliasFor("value")
    String name() default ""; 名称

    @Deprecated
    String serviceId() default ""; 处于弃用状态，作用和name、value一样

    String contextId() default ""; 上下文标识id

    String qualifier() default ""; 如果我们的Feign Client有fallback实现 ,而且primary=false，程序不知道要注入哪个对象，这种情况下我们怎么进行注入，我们可以配置一个qualifier，然后使用@Qualifier注解进行注入

    String url() default ""; url用于配置指定服务的地址，相当于直接请求这个服务，不经过Ribbon的服务选择。

    boolean decode404() default false; 当调用请求发生404错误时，decode404的值为true，那么会执行decoder解码，否则抛出异常

    Class<?>[] configuration() default {}; configuration是配置Feign配置类，在配置类中可以自定义Feign的Encoder、Decoder、LogLevel、Contract等。

    Class<?> fallback() default void.class; 定义容错的处理类，也就是回退逻辑，fallback的类必须实现Feign Client的接口，无法知道熔断的异常信息

    Class<?> fallbackFactory() default void.class; 也是容错的处理，可以知道熔断的异常信息。

    String path() default ""; path定义当前FeignClient访问接口时的统一前缀，比如接口地址是/user/get, 如果你定义了前缀是user, 那么具体方法上的路径就只需要写/get 即可。

    boolean primary() default true; 当我们的Feign实现了fallback后，也就意味着Feign Client有多个相同的Bean在Spring容器中，当我们在使用@Autowired进行注入的时候，不知道注入哪个，所以我们需要设置一个优先级高的
 */
@FeignClient(value = "flow-service",contextId = "filePathClisentBase",path = "file-path")
public interface FilePathClient extends FilePathApi {

}
